using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("SpellCache")]
	public class SpellCache : MonoBehaviour
	{
		public SpellCache(IntPtr address, string className)
			: base(address, className)
		{
		}

		public SpellCache(IntPtr address)
			: this(address, "SpellCache")
		{
		}

		public static SpellCache Get()
		{
			return MonoClass.smethod_15<SpellCache>(TritonHs.MainAssemblyPath, "", "SpellCache", "Get", Array.Empty<object>());
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void Start()
		{
			method_8("Start");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public SpellTable GetSpellTable(string prefabPath)
		{
			return method_14<SpellTable>("GetSpellTable", new object[1] { prefabPath });
		}

		public void Clear()
		{
			method_8("Clear");
		}

		public SpellTable LoadSpellTable(string prefabPath)
		{
			return method_14<SpellTable>("LoadSpellTable", new object[1] { prefabPath });
		}

		public void OnScenePreLoad(SceneMgr.Mode prevMode, SceneMgr.Mode mode, object userData)
		{
			method_8("OnScenePreLoad", prevMode, mode, userData);
		}

		public void PreloadSpell(string tableName, SpellType type)
		{
			method_8("PreloadSpell", tableName, type);
		}
	}
}
